Crate docker_ctl

Crate docker_ctl 

Source
Expand description

docs crates.io

§docker-ctl

Crate for conveniently starting and stopping docker containers. This crate is a wrapper around the docker command line interface.

This crate is considered to be complete, and is in low maintenance mode. You are welcome to contribute support for more docker command via pull requests.

§Installation

Add docker-ctl to your project with:

cargo add docker-ctl

§Example

use docker_ctl::Container;
use std::io::{Read, Write};

// Create a new container, with the `alpine` image in interractive mode.
let mut container = Container::configure("alpine")
  .set_interactive(true)
  .set_capture_stdio(true)
  .create();

/// Start the container
container.start().unwrap();

/// Run the `echo` command in the container
let mut stdin = container.take_stdin().unwrap();
stdin.write_all(b"echo Hello World!").unwrap();

/// Dropping `stdin` will terminate the container
drop(stdin);

/// Read the output
let mut buf = vec![];
container
  .take_stdout()
  .unwrap()
  .read_to_end(&mut buf)
  .unwrap();

/// Print `Hellow World!\n` characters.
println!("{:?}", buf);

Structs§

Configurator
Configuration of the container
Container
Handle to a container

Enums§

Error
Represent errors in docker-ctl
Ipc
Setup IPC via shared memory between container and host.
Network
Network mode, refer to the docker documentation for an explanation on the different modes.

Functions§

build
Create a builder for building a docker image

Type Aliases§

Result